import type {
  EntityApi,
  EntityPage,
  EntityReq,
  EntityTotal,
  EntityModel,
  EntityExportReq,
  EntityKey,
} from "jmash-core";
export interface UserLogApi extends EntityApi {}

export interface UserLogReq extends EntityReq {
  // 租户
  tenant?: string;
  // 名称模糊查询（可选）
  likeLogName?: string;
  // 月份（可选）
  partition?: string;
  // 开始时间（可选）
  startCreateTime?: string;
  // 结束时间（可选）
  endCreateTime?: string;
}

// 用户管理分页
export interface UserLogPage extends EntityPage {
  // 页数
  curPage: number;
  // 条数
  pageSize: number;
  // 当前页内容
  results: Array<UserLogModel>;
  // 总记录数
  totalSize: number;
  // 本页小计
  subTotalDto: UserLogTotal;
  // 合计
  totalDto: UserLogTotal;
}

// 合计
export interface UserLogTotal extends EntityTotal {
  // 总记录数
  totalSize: number;
}

export interface dialogRef {
  // 弹框是否显示
  visible: boolean;
  // 用户弹框是否根据操作人显示（可选）
  visibleUser?: boolean;
}

// 删除日志年份表单
export interface YearForm {
  // 待删除的日志年份
  number: number;
}

// 安全日志实体
export interface UserLogModel extends EntityModel {
  // 日志
  logId?: string;
  // 表分区
  partition?: number;
  // 操作类型
  logName?: string;
  // 操作内容/日志信息
  logMsg?: string;
  // 环境参数
  envProps?: string;
  // 设备标识ID
  deviceId?: string;
  // 用户IP
  userIp?: string;
  // 代理IP
  proxyIp?: string;
  // 创建人/用户ID
  createBy?: string;
  // 创建时间/操作时间
  createTime?: string;
}

// 安全日志主键
export interface UserLogKey extends EntityKey {
  // 租户
  tenant?: string;
  // 日志
  logId?: string;
  // 表分区
  partition?: number;
}

// 用户部门岗位信息
export interface UserDeptJobInfoRes {
  // 用户ID
  key?: string;
  // 用户真实姓名
  value?: string;
  // 用户ID
  userId: string;
  // 用户昵称
  nickName: string;
  // 用户真实姓名
  realName: string;
  // 部门及岗位信息
  jobInfo: JobInfo;

}
// 部门岗位信息
export interface JobInfo {
  // 部门ID
  deptId: string;
  // 部门名称
  deptName: string;
  // 岗位ID
  jobId: string;
  // 岗位名称
  jobName: string;
}

// 导出请求
export interface UserLogExportReq extends EntityExportReq {
  // 租户
  tenant: string;
  // 标题
  title?: string;
  // 显示文件名
  fileName?: string;
  // 筛选条件
  req: UserLogReq;
}
